/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package olimpus.per;

import olimpus.obj.ValorMesGastosVariables;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Leonardo
 */
public class ValorMesGastosVariablesPer
{  
   public static ValorMesGastosVariables obtenerValorMesGastosVariables(Connection con, String xAaaamm) throws Exception
   {
        ValorMesGastosVariables objValorMesGastosVariables = new ValorMesGastosVariables();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                       "from VALOR_MES_GASTOS_VARIABLES "+
                                                         "where AAAAMM=? ");
            st.setString(1, xAaaamm);

            ResultSet resultado = st.executeQuery();

            if(resultado.next())
            {
                objValorMesGastosVariables.setAaaamm(resultado.getString("AAAAMM"));
                objValorMesGastosVariables.setDescripcion(resultado.getString("DESCRIPCION"));
                objValorMesGastosVariables.setFecha(resultado.getString("FECHA"));
                objValorMesGastosVariables.setCantidad(resultado.getLong("CANTIDAD"));
                objValorMesGastosVariables.setPrecioUnitario(resultado.getDouble("PRECIO_UNITARIO"));
                objValorMesGastosVariables.setValor(resultado.getDouble("VALOR"));
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return objValorMesGastosVariables;
   }

   public static boolean existeValorMesGastosVariables(Connection con, String xAaaamm) throws Exception
   {
        try
        {
            PreparedStatement st=con.prepareStatement("select count(*) as EXISTE " +
                                                      "from VALOR_MES_GASTOS_VARIABLES " +
                                                         "where AAAAMM=? ");

            st.setString(1, xAaaamm);

            ResultSet resultado = st.executeQuery();

            if (resultado.next())
            {
                if (resultado.getInt("EXISTE")==0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return false;
   }

   public static ArrayList<ValorMesGastosVariables> obtenerColeccionValorMesGastosVariables(Connection con, String xAAAAMM) throws Exception
   {
        ArrayList colValorMesGastosVariables = new ArrayList();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                      "from VALOR_MES_GASTOS_VARIABLES " +
                                                      "where AAAAMM = ?");

            st.setString(1, xAAAAMM);
            
            ResultSet resultado = st.executeQuery();

            while (resultado.next())
            {
                ValorMesGastosVariables objValorMesGastosVariables = new ValorMesGastosVariables();

                objValorMesGastosVariables.setIdGastoVariable(resultado.getLong("ID_GASTO_VARIABLE"));
                objValorMesGastosVariables.setAaaamm(resultado.getString("AAAAMM"));
                objValorMesGastosVariables.setDescripcion(resultado.getString("DESCRIPCION"));
                objValorMesGastosVariables.setFecha(resultado.getString("FECHA"));
                objValorMesGastosVariables.setCantidad(resultado.getLong("CANTIDAD"));
                objValorMesGastosVariables.setPrecioUnitario(resultado.getDouble("PRECIO_UNITARIO"));
                objValorMesGastosVariables.setValor(resultado.getDouble("VALOR"));

                colValorMesGastosVariables.add(objValorMesGastosVariables);
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return colValorMesGastosVariables;
    }

    public static void altaValorMesGastosVariables(Connection con, ValorMesGastosVariables xObjValorMesGastosVariables) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("insert into VALOR_MES_GASTOS_VARIABLES " +
                                                      "values (?,?,?,?,?,?)");

            st.setString(1, xObjValorMesGastosVariables.getAaaamm());
            st.setString(2, xObjValorMesGastosVariables.getDescripcion());
            st.setString(3, xObjValorMesGastosVariables.getFecha());
            st.setLong(4, xObjValorMesGastosVariables.getCantidad());
            st.setDouble(5, xObjValorMesGastosVariables.getPrecioUnitario());
            st.setDouble(6, xObjValorMesGastosVariables.getValor());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void bajaValorMesGastosVariables(Connection con, ValorMesGastosVariables xObjValorMesGastosVariables) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("delete from VALOR_MES_GASTOS_VARIABLES " +
                                                         "where ID_GASTO_VARIABLE = ? " +
                                                         "and AAAAMM=? ");

            st.setLong(1, xObjValorMesGastosVariables.getIdGastoVariable());
            st.setString(2, xObjValorMesGastosVariables.getAaaamm());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void modificaValorMesGastosVariables(Connection con, ValorMesGastosVariables xObjValorMesGastosVariables) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("update VALOR_MES_GASTOS_VARIABLES " +
                                                      "set DESCRIPCION=?, "+
                                                      "FECHA=?, "+
                                                      "CANTIDAD=?, "+
                                                      "PRECIO_UNITARIO=?, "+
                                                      "VALOR=? "+
                                                         "where AAAAMM=? ");

            st.setString(1, xObjValorMesGastosVariables.getDescripcion());
            st.setString(2, xObjValorMesGastosVariables.getFecha());
            st.setLong(3, xObjValorMesGastosVariables.getCantidad());
            st.setDouble(4, xObjValorMesGastosVariables.getPrecioUnitario());
            st.setDouble(5, xObjValorMesGastosVariables.getValor());
            st.setString(6, xObjValorMesGastosVariables.getAaaamm());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }
}
